"""
创建一个列表或元素，其中包含 10 个数和 5 个字母。
从这个列表或元组中随机选择 4 个数或字母，并打印一条消息，
指出只要彩票上是这 4 个数或字母，就中大奖了。
可以使用一个循环来理解中前述彩票大奖有多难.
"""

import random
import string

class Draw:
    """抽奖一次"""
    def __init__(self, lists, time=4):
        self.lists = lists
        self.time = time
        
    def draw(self):
        """进行抽奖"""
        random_elements = random.sample(self.lists, self.time)
        return random_elements
    
    def check_win(self, random_elements):
        """判断是否中奖"""
        winning = True
        for i in range(self.time - 1):
            if type(random_elements[i]) != type(random_elements[i + 1]):
                winning = False
                break
        return winning


# 生成卡池列表
lists = list(range(10)) + [c for c in string.ascii_lowercase[:5]]
loop = 0

while True:
    loop += 1
    draw = Draw(lists, 4)
    elements = draw.draw()
    print(f"第{loop} 次抽到：{elements}")
    if draw.check_win(elements):
        print(f"恭喜中奖，共抽 {loop} 次")
        break


